#include <stdio.h>
#include <windows.h>

// 定义Ackermann函数
int Ackermann(int m, int n) {
    if (m == 0) {
        return n + 1;
    } else if (n == 0) {
        return Ackermann(m - 1, 1);
    } else {
        return Ackermann(m - 1, Ackermann(m, n - 1));
    }
}

// 输出Ack(2, 1)的计算过程
void printAckProcess(int m, int n) {
    printf("Ack(%d, %d)\n", m, n);
    printf("计算 Ack(%d, %d)...\n", m, n);
    printf("结果: %d\n", Ackermann(m, n));
}

int main() {
    SetConsoleOutputCP(65001);
    // 计算Ack(2, 1)的计算过程
    printAckProcess(2, 1);

    return 0;
}
